/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package DAO;
import Fachada.Fachada;
import LogicaNegocio.*;
import java.sql.*;
import java.util.Vector;

/**
 *
 * @author GEMA
 */
public class DAOCampanaPublicitaria
{
    private Fachada fachada;

    public DAOCampanaPublicitaria()
    {
        fachada= new Fachada();
    }

    public int guardarCamapanaPublictaria(CampanaPublicitaria campana)
    {
        String sql_guardar;
        sql_guardar= "INSERT INTO CampanaPublicitaria(codigo_campaNa,nombre_campaNa,descripcion_campaNa, presupuesto_campaNa) " +
                "VALUES"+ "('" + campana.getCodigoCampana()+"','"+campana.getNombreCampana()+"','"+campana.getDescripcionCampana()+"','"
                +campana.getPresupuestoCampana()+"')";

         try
        {
            Connection conexion= fachada.ConexionBaseDatos();
            Statement sentencia=conexion.createStatement();
            int numFilas= sentencia.executeUpdate(sql_guardar);
            conexion.close();
            return numFilas;
        }
        catch(SQLException e)
        {
            System.out.println(e);
        }
        catch(Exception e)
        { System.out.println(e);
        }
        return -1;

    }

    public Vector<CampanaPublicitaria> consultarCampanas()
    {
        String sql_select;
        sql_select = "SELECT * FROM CampaNaPublicitaria";
        /*sql_select = "SELECT C.codigo_campaNa,nombre_campaNa, descripcion_campaNa, presupuesto_campaNa,fecha_CampaNa_Articulo " +
                          " FROM CampaNaPublicitaria C, CampaNa_Articulo CA, Articulo A " +
                          "WHERE  C.codigo_campaNa=CA.codigo_campaNa " +
                          "AND A.codigo_articulo=CA.codigo_articulo";*/

        Vector <CampanaPublicitaria> vecCampaNA = new Vector <CampanaPublicitaria>();

        try
        {
            Connection conn = fachada.ConexionBaseDatos();
            Statement sentencia = conn.createStatement();
            ResultSet tabla = sentencia.executeQuery(sql_select);

            while(tabla.next())
            {
                CampanaPublicitaria campana = new CampanaPublicitaria(tabla.getString(1),tabla.getString(2), tabla.getString(3),tabla.getInt(4));
                vecCampaNA.addElement(campana);
            }
            conn.close();
            System.out.println("Conexion cerrada");
            return vecCampaNA;
        }
        catch(SQLException e)
        {
            System.out.println(e);
            return null;
        }
        catch(Exception e)
        {
            System.out.println(e);
            return null;
        }
    }

    public CampanaPublicitaria consultarCampanaPub(String codigo) {
        String sql_seleccionar;
        sql_seleccionar = "SELECT C.codigo_campaNa,nombre_campaNa, descripcion_campaNa, presupuesto_campaNa,fecha_CampaNa_Articulo " +
                          " FROM CampaNaPublicitaria C, CampaNa_Articulo CA, Articulo A " +
                          "WHERE C.codigo_campaNa='"+codigo+"' " +
                          "AND C.codigo_campaNa=CA.codigo_campaNa " +
                          "AND A.codigo_articulo=CA.codigo_articulo";

        try{
            Connection conexion= fachada.ConexionBaseDatos();
            Statement sentencia = conexion.createStatement();
            ResultSet tabla = sentencia.executeQuery(sql_seleccionar);

            CampanaPublicitaria campana = null;

            while(tabla.next())
            {
               campana = new CampanaPublicitaria(tabla.getString(1),tabla.getString(2), tabla.getString(3),tabla.getInt(4));
            }
            conexion.close();
            System.out.println("Conexion cerrada");
            return campana;
        }
         catch(SQLException e)
         {
             System.out.println(e);
             return null;
         }
         catch(Exception e){
             System.out.println(e);
             return null;
         }
    }

    public int modificarNombreCampana(CampanaPublicitaria campana)
    {
        String sql_modificar;
        sql_modificar="UPDATE CampanaPublicitaria " +
                      "SET nombre_campaNa='"+campana.getNombreCampana()+"' " +
                      "WHERE codigo_campaNa='"+ campana.getCodigoCampana()+"'";

         try
        {
            Connection conexion = fachada.ConexionBaseDatos();
            Statement sentencia = conexion.createStatement();
            int numFilas = sentencia.executeUpdate(sql_modificar);
            conexion.close();
            return numFilas;
        }
        catch(SQLException e){System.out.println(e); }
        catch(Exception e){System.out.println(e); }
        return -1;

    }

     public int modificarDescripcionCampana(CampanaPublicitaria campana)
    {
         String sql_modificar;
         sql_modificar="UPDATE CampanaPublicitaria " +
                       "SET descripcion_campaNa='"+ campana.getDescripcionCampana()+"' " +
                       "WHERE codigo_campaNa='"+campana.getCodigoCampana()+"'";
        
        try
        {
            Connection conexion = fachada.ConexionBaseDatos();
            Statement sentencia = conexion.createStatement();
            int numFilas = sentencia.executeUpdate(sql_modificar);
            conexion.close();
            return numFilas;
        }
        catch(SQLException e){System.out.println(e); }
        catch(Exception e){System.out.println(e); }
        return -1;
    }


      public int modificarPresupuestoCampana(CampanaPublicitaria campana)
    {
         String sql_modificar;
         sql_modificar="UPDATE CampanaPublicitaria " +
                       "SET presupuesto_campaNa='"+ campana.getPresupuestoCampana()+"' " +
                       "WHERE codigo_campaNa='"+campana.getCodigoCampana()+"'";
        try
        {
            Connection conexion = fachada.ConexionBaseDatos();
            Statement sentencia = conexion.createStatement();
            int numFilas = sentencia.executeUpdate(sql_modificar);
            conexion.close();
            return numFilas;
        }
        catch(SQLException e){System.out.println(e); }
        catch(Exception e){System.out.println(e); }
        return -1;
    }



    public int eliminarCampana(String idCampana)
    {
        String sql_eliminar;
        sql_eliminar = "DELETE FROM CampanaPublicitaria "+
                        "WHERE codigo_campaNa = " + "'" +idCampana + "'";

        try
        {
            Connection conexion = fachada.ConexionBaseDatos();
            Statement sentencia = conexion.createStatement();
            int numFilas = sentencia.executeUpdate(sql_eliminar);
            conexion.close();
            return numFilas;
        }
        catch(SQLException e)
        {System.out.println(e); }
        catch(Exception e)
        {System.out.println(e); }
        return -1;
    }



}
